package com.yhy.wxzn.wcs.service;

import com.yhy.wxzn.wcs.device.rgv.bean.Coord;
import com.yhy.wxzn.wcs.device.rgv.bean.Node;
import com.yhy.wxzn.wcs.device.rgv.enums.NodeType;
import com.yhy.wxzn.wcs.entity.WcsMapInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @Description: 地图配置
 * @Author: jeecg-boot
 * @Date:   2023-10-31
 * @Version: V1.0
 */
public interface IWcsMapInfoService extends IService<WcsMapInfo> {

    List<Node> getMapByGroundCode(String groundCode);

    List<Node> getNodes(Node start,Node end);
    List<Node> getAllNodes();



    Node getNode(Node node);

    boolean isCanGet(Node node);


    boolean isCanPut(Node node);


    int maxX();
    int maxY();
    int maxZ();

    void importMap(List<WcsMapInfo> mapInfos);


    List<Node> getNodeByFloor(Integer floor);
    List<WcsMapInfo> getWcsMapInfoByFloor(Integer floor);
    WcsMapInfo getWcsMapInfoById(String id);


    boolean cargoStatusById(String id, String status);
    boolean cargoStatusByCoord(Coord coord, String status);
    boolean cargoStatusByCoordStr(String coord, String status);

    WcsMapInfo getNodeDBByWmsCoord(String startNode);

    List<WcsMapInfo> getWcsMapInfoByFloorAndType(NodeType nodeType, Integer layer);
}
